Data and information are rapidly becoming the life blood of enterprises. Transactions with customers, operational data, financial data, corporate intelligence data; in fact, all types of information are now captured, indexed, stored, and mined by enterprises in today's highly competitive and world economy.
Since information is vital to the enterprise, it is often made available twenty-four hours a day, seven days a week, and three hundred sixty-five days a year. To this, the enterprises have to implement a variety of data replication, data backup, and data versioning techniques against their data models or their data warehouses.
For example, an enterprise may periodically capture the state of its data for a particular volume as a snapshot. If something should happen to the volume, it can be completely restored to the saved snapshot state. Another technique mirrors a volume on multiple volumes, such that if one volume is down or not accessible, another volume is automatically made available unbeknownst to the users. This is often referred to as data replication or failover support.
In still more cases, an enterprise may desire to permit different versions of files in the data warehouse to be captured, archived, and restored on demand by a user. This may be useful for a variety of reasons. For example, a user may download a file and work with it offline and could then lose the file due to a hardware failure. In another case, a user may make changes to a file and then determine that a previous version was more acceptable or more desirable. In either case, if the files are versioned, the user can retrieve a desired version of a file from an archive or versioning volume.
Versioning or archive services typically store an entire file, even if only a single byte of information changes between different versions of that file. Some techniques use a file difference technique to flag different versions. In a file difference approach, the original and first file version is maintained as a base and difference files are produced to represent the subsequent versions. Many times in versioning the two types of versioning mentioned above, one user may have access rights to a particular version and not other versions.
Yet, current techniques typically have no ability to retain security restrictions from version to version. Moreover, conventional versioning methods often lose a version's original directory path information; such that when a version is recovered a user may not be able to ascertain where that version was originally located in a directory. Loss of directory path information is often intentionally done to avoid conflicts/collisions and to avoid too many directories or directory entries appearing on a given file system, which may have hard limitations in that regard.
Thus, there is a need for improved techniques in retaining security restrictions with file versioning.